home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / decprom / ds3100.md / start.s < prev   
Text File  |  1990-02-16  |  2KB  |  50 lines

  1. /* start.s -
  2.  *
  3.  *     Contains code that is the first executed at boot time.
  4.  *
  5.  *    Copyright (C) 1989 Digital Equipment Corporation.
  6.  *    Permission to use, copy, modify, and distribute this software and
  7.  *    its documentation for any purpose and without fee is hereby granted,
  8.  *    provided that the above copyright notice appears in all copies.  
  9.  *    Digital Equipment Corporation makes no representations about the
  10.  *    suitability of this software for any purpose.  It is provided "as is"
  11.  *    without express or implied warranty.
  12.  *
  13.  * $Header: /sprite/src/boot/decprom/ds3100.md/RCS/start.s,v 1.1 90/02/16 16:19:39 shirriff Exp $ SPRITE (DECWRL)
  14.  */
  15.  
  16. #include <regdef.h>
  17. #include "kernel/machConst.h"
  18.  
  19. /*
  20.  * Amount to take off of the stack for the benefit of the debugger.
  21.  */
  22. #define START_FRAME    ((4 * 4) + 4 + 4)
  23. #define Init    0xbfc00018
  24.  
  25.     .globl    start
  26. start:
  27.     mtc0    zero, MACH_COP_0_STATUS_REG    # Disable interrupts
  28.     li        sp, MACH_CODE_START - START_FRAME
  29.     la        gp, _gp
  30.     sw        zero, START_FRAME - 4(sp)    # Zero out old ra for debugger
  31.     sw        zero, START_FRAME - 8(sp)    # Zero out old fp for debugger
  32.     jal        main                # main(argc, argv, envp)
  33.     li        a0, Init            # done, so call prom
  34.     j        a0
  35.  
  36.     .globl    Boot_Transfer
  37. Boot_Transfer:
  38.     mtc0    zero, MACH_COP_0_STATUS_REG    # Disable interrupts
  39.     li        sp, MACH_CODE_START - START_FRAME
  40.     la        gp, _gp
  41.     sw        zero, START_FRAME - 4(sp)    # Zero out old ra for debugger
  42.     sw        zero, START_FRAME - 8(sp)    # Zero out old fp for debugger
  43.     move    t0,a0                #shift arguments down
  44.     move    a0,a1
  45.     move    a1,a2
  46.     move    a2,a3
  47.     jal        t0                # Jump to routine
  48.     li        a0, Init            # done, so call prom
  49.     j        a0
  50.